Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add the --size argument to the sha3sum command. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
ccdafa2a93e7bcefa1b4d0ea7474f9ce |
User & Date: | drh 2017-02-26 16:30:44 |
Context
2017-02-27
| ||
14:46 | The smallest SHA3 hash size is 224 bits, not 228 bits. ... (check-in: 5ed8477b user: drh tags: trunk) | |
13:07 | Improvement to the way auxiliary tables are initially dropped on a rebuild. ... (check-in: a31944e6 user: drh tags: fossil-2.0) | |
2017-02-26
| ||
16:30 | Add the --size argument to the sha3sum command. ... (check-in: ccdafa2a user: drh tags: trunk) | |
2017-02-25
| ||
20:33 | Optimizations to the SHA3 algorithm. ... (check-in: 493321d4 user: drh tags: trunk) | |
Changes
Changes to src/sha3.c.
︙ | ︙ | |||
364 365 366 367 368 369 370 | /* ** Initialize a new hash. iSize determines the size of the hash ** in bits and should be one of 224, 256, 384, or 512. Or iSize ** can be zero to use the default hash size of 224 bits. */ static void SHA3Init(SHA3Context *p, int iSize){ memset(p, 0, sizeof(*p)); | | | 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 | /* ** Initialize a new hash. iSize determines the size of the hash ** in bits and should be one of 224, 256, 384, or 512. Or iSize ** can be zero to use the default hash size of 224 bits. */ static void SHA3Init(SHA3Context *p, int iSize){ memset(p, 0, sizeof(*p)); if( iSize>=128 && iSize<=512 ){ p->nRate = (1600 - ((iSize + 31)&~31)*2)/8; }else{ p->nRate = 144; } #if SHA3_BYTEORDER==1234 /* Known to be little-endian at compile-time. No-op */ #elif SHA3_BYTEORDER==4321 |
︙ | ︙ | |||
498 499 500 501 502 503 504 | } /* ** Add the content of a blob to the incremental SHA3 checksum. */ void sha3sum_step_blob(Blob *p){ assert( incrInit ); | | | 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 | } /* ** Add the content of a blob to the incremental SHA3 checksum. */ void sha3sum_step_blob(Blob *p){ assert( incrInit ); SHA3Update(&incrCtx, (unsigned char*)blob_buffer(p), blob_size(p)); } /* ** Finish the incremental SHA3 checksum. Store the result in blob pOut ** if pOut!=0. Also return a pointer to the result. ** ** This resets the incremental checksum preparing for the next round |
︙ | ︙ | |||
610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 | ** ** Options: ** ** --228 Compute a SHA3-228 hash (the default) ** --256 Compute a SHA3-256 hash ** --384 Compute a SHA3-384 hash ** --512 Compute a SHA3-512 hash */ void sha3sum_test(void){ int i; Blob in; Blob cksum; int iSize = 224; if( find_option("228",0,0)!=0 ) iSize = 228; else if( find_option("256",0,0)!=0 ) iSize = 256; else if( find_option("384",0,0)!=0 ) iSize = 384; else if( find_option("512",0,0)!=0 ) iSize = 512; verify_all_options(); for(i=2; i<g.argc; i++){ blob_init(&cksum, "************** not found ***************", -1); if( g.argv[i][0]=='-' && g.argv[i][1]==0 ){ blob_read_from_channel(&in, stdin, -1); sha3sum_blob(&in, iSize, &cksum); | > > > > > > > > > > > > | 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 | ** ** Options: ** ** --228 Compute a SHA3-228 hash (the default) ** --256 Compute a SHA3-256 hash ** --384 Compute a SHA3-384 hash ** --512 Compute a SHA3-512 hash ** --size N An N-bit hash. N must be a multiple of 32 between 128 ** and 512. */ void sha3sum_test(void){ int i; Blob in; Blob cksum; int iSize = 224; if( find_option("228",0,0)!=0 ) iSize = 228; else if( find_option("256",0,0)!=0 ) iSize = 256; else if( find_option("384",0,0)!=0 ) iSize = 384; else if( find_option("512",0,0)!=0 ) iSize = 512; else{ const char *zN = find_option("size",0,1); if( zN!=0 ){ int n = atoi(zN); if( n%32!=0 || n<128 || n>512 ){ fossil_fatal("--size must be a multiple of 64 between 128 and 512"); } iSize = n; } } verify_all_options(); for(i=2; i<g.argc; i++){ blob_init(&cksum, "************** not found ***************", -1); if( g.argv[i][0]=='-' && g.argv[i][1]==0 ){ blob_read_from_channel(&in, stdin, -1); sha3sum_blob(&in, iSize, &cksum); |
︙ | ︙ |